package stack1;

import java.util.Arrays;

public class MyStack {
    //用数组实现一个栈
    public int[]array;
    //记录栈中的元素个数
    public int size;
    //栈的无参构造方法

    public MyStack() {
        this.array = new int[10];
    }
    //判断栈是否已满
    public boolean isEmpty(){
        return size==0;
    }
    public boolean isFull(){
        return  size== array.length;
    }

    //入栈方法
    public void push(int data){
        //判断数组是否满
        if(isFull()){
            this.array= Arrays.copyOf(array,array.length+4);
        }
        array[size++]=data;
    }
    //出栈方法
    public int pop(){
        if(isEmpty()){
            throw new MyStackArrayEmpty("当前栈为空，无法弹出");
        }
        size--;
        return array[size];
    }
    //获取栈顶元素42545
    public int peek(){
        if(isEmpty()){
            throw new MyStackArrayEmpty("当前栈顶为空");
        }
        return array[size-1];
    }
    //打印栈中的元素
    public void display(){
        int size1=size;
        while(size1>0){
            System.out.print(array[size1-1]+" ");
            size1--;
        }
        System.out.println();

    }
}
